const express = require('express');
const router = express.Router();
const { success, failure } = require('../utils/responses');
const svgCaptcha = require('svg-captcha');
const { setKey } = require('../utils/redis');
const { v4: uuidv4 } = require('uuid');

/**
 * 获取验证码
 * GET /captcha
 */
router.get('/', async (req, res) => {
    try {
        // const captcha = svgCaptcha.create({
        //     size: 4,                    // 验证码长度
        //     ignoreChars: '0O1Il9quv',   // 验证码字符中排除 0O1Il9quv
        //     noise: 3,                   // 干扰线条数量
        //     color: true,                // 是否有颜色，
        //     width: 100,                 // 宽
        //     height: 40                  // 高
        //   });
        
        //如果想用数学验证码
         const captcha = svgCaptcha.createMathExpr({
            mathMin: 1,                 // 数学表达式中的最小值
            mathMax: 9,                 // 数学表达式中的最大值
            mathOperator: '+',          // 数学运算符
            color: true,  
         });
         const captchaKey = `captcha:${uuidv4()}`;
         await setKey(captchaKey, captcha.text, 60 * 10);
         // 存储验证码答案到 Redis
        console.log(captcha.text);
        // res.type('svg');
        // res.status(200).send(captcha.data);
        success(res, '验证码获取成功。', {
            captchaKey,
            captchaData: captcha.data,
          });
      } catch (error) {
        failure(res, error);
      }
      
});

module.exports = router;
